/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.fleet.entity;

import com.jeeplus.modules.fleet.entity.Motorcade;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import com.google.common.collect.Lists;

import com.jeeplus.core.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;

/**
 * 自有车辆Entity
 * @author sld
 * @version 2017-11-23
 */
public class VehicleInformation extends DataEntity<VehicleInformation> {
	
	private static final long serialVersionUID = 1L;
	private Motorcade motorcade;		// 车队
	private String license;		// 车牌号
	private String travelId;		// 行驶证号
	private String archivesNumber;		// 档案编号
	private String emissionStandard;		// 排放标准
	private String engineNumber;		// 发动机号
	private String frameNumber;		// 车架号
	private String totalMass;		// 总质量
	private String curbWeight;		// 整备质量
	private String approvedQuality;		// 核定载质量
	private String axleNumber;		// 车轴数
	private String vehicleBrand;		// 车辆品牌
	private String carType;		// 车辆型号
	private String vehicleType;		// 车型
	private String overallDimensions;		// 外形尺寸（长*宽*高）
	private String unit;		// 单位
	private Date purchaseDate;		// 采购日期
	private Date annualDate;		// 年检生效时间
	private Date njsx;		// 年检失效时间
	private String njfy;//年检费用
	private Date servicingTime;		// 二级维护时间
	private Date discardTime;		// 强制报废时间
	private String insuranceType;		// 保险类型
	private String insuranceCompany;		// 保险公司
	private String namePhone;		// 保险经纪人姓名电话
	private Date effectiveDate;		// 保险生效日期
	private Date expiryDate;		// 保险失效日期
	private String insuranceMark;		// 保险单号
	private String coverage;		// 保额
	private String premium;		// 保费
	private String projectName;  //项目名称
	private List<AccidentInformation> accidentInformationList = Lists.newArrayList();		// 子表列表
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getNjsx() {
		return njsx;
	}

	public void setNjsx(Date njsx) {
		this.njsx = njsx;
	}

	public String getNjfy() {
		return njfy;
	}

	public void setNjfy(String njfy) {
		this.njfy = njfy;
	}

	public VehicleInformation() {
		super();
	}

	public VehicleInformation(String id){
		super(id);
	}

	@ExcelField(title="车队", fieldType=Motorcade.class, value="", align=2, sort=1)
	public Motorcade getMotorcade() {
		return motorcade;
	}

	public void setMotorcade(Motorcade motorcade) {
		this.motorcade = motorcade;
	}
	
	@ExcelField(title="车牌号", align=2, sort=2)
	public String getLicense() {
		return license;
	}

	public void setLicense(String license) {
		this.license = license;
	}
	
	@ExcelField(title="行驶证号", align=2, sort=3)
	public String getTravelId() {
		return travelId;
	}

	public void setTravelId(String travelId) {
		this.travelId = travelId;
	}
	
	@ExcelField(title="档案编号", align=2, sort=4)
	public String getArchivesNumber() {
		return archivesNumber;
	}

	public void setArchivesNumber(String archivesNumber) {
		this.archivesNumber = archivesNumber;
	}
	
	@ExcelField(title="排放标准", align=2, sort=5)
	public String getEmissionStandard() {
		return emissionStandard;
	}

	public void setEmissionStandard(String emissionStandard) {
		this.emissionStandard = emissionStandard;
	}
	
	@ExcelField(title="发动机号", align=2, sort=6)
	public String getEngineNumber() {
		return engineNumber;
	}

	public void setEngineNumber(String engineNumber) {
		this.engineNumber = engineNumber;
	}
	
	@ExcelField(title="车架号", align=2, sort=7)
	public String getFrameNumber() {
		return frameNumber;
	}

	public void setFrameNumber(String frameNumber) {
		this.frameNumber = frameNumber;
	}
	
	@ExcelField(title="总质量", align=2, sort=8)
	public String getTotalMass() {
		return totalMass;
	}

	public void setTotalMass(String totalMass) {
		this.totalMass = totalMass;
	}
	
	@ExcelField(title="整备质量", align=2, sort=9)
	public String getCurbWeight() {
		return curbWeight;
	}

	public void setCurbWeight(String curbWeight) {
		this.curbWeight = curbWeight;
	}
	
	@ExcelField(title="核定载质量", align=2, sort=10)
	public String getApprovedQuality() {
		return approvedQuality;
	}

	public void setApprovedQuality(String approvedQuality) {
		this.approvedQuality = approvedQuality;
	}
	
	@ExcelField(title="车轴数", align=2, sort=11)
	public String getAxleNumber() {
		return axleNumber;
	}

	public void setAxleNumber(String axleNumber) {
		this.axleNumber = axleNumber;
	}
	
	@ExcelField(title="车辆品牌", align=2, sort=12)
	public String getVehicleBrand() {
		return vehicleBrand;
	}

	public void setVehicleBrand(String vehicleBrand) {
		this.vehicleBrand = vehicleBrand;
	}
	
	@ExcelField(title="车辆型号", align=2, sort=13)
	public String getCarType() {
		return carType;
	}

	public void setCarType(String carType) {
		this.carType = carType;
	}
	
	@ExcelField(title="车型", align=2, sort=14)
	public String getVehicleType() {
		return vehicleType;
	}

	public void setVehicleType(String vehicleType) {
		this.vehicleType = vehicleType;
	}
	
	@ExcelField(title="外形尺寸（长*宽*高）", align=2, sort=15)
	public String getOverallDimensions() {
		return overallDimensions;
	}

	public void setOverallDimensions(String overallDimensions) {
		this.overallDimensions = overallDimensions;
	}
	
	@ExcelField(title="单位", align=2, sort=16)
	public String getUnit() {
		return unit;
	}

	public void setUnit(String unit) {
		this.unit = unit;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="采购日期", align=2, sort=17)
	public Date getPurchaseDate() {
		return purchaseDate;
	}

	public void setPurchaseDate(Date purchaseDate) {
		this.purchaseDate = purchaseDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="年检时间", align=2, sort=18)
	public Date getAnnualDate() {
		return annualDate;
	}

	public void setAnnualDate(Date annualDate) {
		this.annualDate = annualDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="二级维护时间", align=2, sort=19)
	public Date getServicingTime() {
		return servicingTime;
	}

	public void setServicingTime(Date servicingTime) {
		this.servicingTime = servicingTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="强制报废时间", align=2, sort=20)
	public Date getDiscardTime() {
		return discardTime;
	}

	public void setDiscardTime(Date discardTime) {
		this.discardTime = discardTime;
	}
	
	@ExcelField(title="保险类型", align=2, sort=21)
	public String getInsuranceType() {
		return insuranceType;
	}

	public void setInsuranceType(String insuranceType) {
		this.insuranceType = insuranceType;
	}
	
	@ExcelField(title="保险公司", align=2, sort=22)
	public String getInsuranceCompany() {
		return insuranceCompany;
	}

	public void setInsuranceCompany(String insuranceCompany) {
		this.insuranceCompany = insuranceCompany;
	}
	
	@ExcelField(title="保险经纪人姓名电话", align=2, sort=23)
	public String getNamePhone() {
		return namePhone;
	}

	public void setNamePhone(String namePhone) {
		this.namePhone = namePhone;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="保险生效日期", align=2, sort=24)
	public Date getEffectiveDate() {
		return effectiveDate;
	}

	public void setEffectiveDate(Date effectiveDate) {
		this.effectiveDate = effectiveDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="保险失效日期", align=2, sort=25)
	public Date getExpiryDate() {
		return expiryDate;
	}

	public void setExpiryDate(Date expiryDate) {
		this.expiryDate = expiryDate;
	}
	
	@ExcelField(title="保险单号", align=2, sort=26)
	public String getInsuranceMark() {
		return insuranceMark;
	}

	public void setInsuranceMark(String insuranceMark) {
		this.insuranceMark = insuranceMark;
	}
	
	@ExcelField(title="保额", align=2, sort=27)
	public String getCoverage() {
		return coverage;
	}

	public void setCoverage(String coverage) {
		this.coverage = coverage;
	}
	
	@ExcelField(title="保费", align=2, sort=28)
	public String getPremium() {
		return premium;
	}

	public void setPremium(String premium) {
		this.premium = premium;
	}

	@ExcelField(title="项目名称",align=2,sort=29)
	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	public List<AccidentInformation> getAccidentInformationList() {
		return accidentInformationList;
	}

	public void setAccidentInformationList(List<AccidentInformation> accidentInformationList) {
		this.accidentInformationList = accidentInformationList;
	}
}